#ifndef __DI_CONFIG_H__
#define __DI_CONFIG_H__
#include "di_test.h"

void config_di_mode_level(void *param) {
    struct di_param_t *pparam = (struct di_param_t *)param;
    uint8_t i = 0;

    if (pparam->read_cnt == 0)
        pparam->read_cnt = 1;
    pparam->en_read = 1;
    pparam->read_cnt = 1;

    for (i = 0; i < pparam->dev_num; i++) {
        pparam->dev[i].index = i;
        pparam->dev[i].mode = DI_MOD_LEVEL;
        if (pparam->dev[i].edge == 0) {
            pparam->dev[i].edge = DI_EDGE_RISE;
        }
        if (pparam->dev[i].delay == 0) {
            pparam->dev[i].delay = 10;
        }
    }
};

void config_di_mode_irq(void *param) {
    struct di_param_t *pparam = (struct di_param_t *)param;
    uint8_t i = 0;

    if (pparam->read_cnt == 0)
        pparam->read_cnt = 1;
    pparam->en_read = 1;
    pparam->read_cnt = -1;

    for (i = 0; i < pparam->dev_num; i++) {
        pparam->dev[i].index = i;
        pparam->dev[i].mode = DI_MOD_IRQ;
        if (pparam->dev[i].edge == 0) {
            pparam->dev[i].edge = DI_EDGE_RISE_FALL;
        }
        if (pparam->dev[i].delay == 0) {
            pparam->dev[i].delay = 10;
        }
    }
};

#endif /* __DI_CONFIG_H__ */
